package com.agua.enturno.vista.dto.assemblers;

import com.agua.enturno.excepciones.ExcepcionDeReglaDelNegocio;
import com.agua.enturno.modelo.agenda.Agenda;
import com.agua.enturno.vista.dto.AgendaDTO;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;

public class AgendaAssembler extends NullAwareSimpleAssembler<Agenda, AgendaDTO> {

	private PrestadorDeServiciosAssembler prestadorDeServiciosAssembler = new PrestadorDeServiciosAssembler();


	@Override
	protected AgendaDTO internalAssemble(Agenda agenda) {
		return new AgendaDTO(
				agenda.getId(), 
				prestadorDeServiciosAssembler.assemble(agenda.getPrestadorDeServicios()), 
				agenda.getNombre(), 
				agenda.getAntelacionMaxima());
	}

	@Override
	protected Agenda internalDisassemble(AgendaDTO agendaDTO) throws ExcepcionDeReglaDelNegocio {
		return null;
	}
	
	public List<AgendaDTO> assemble(Set<Agenda> agendas) {
		
		List<AgendaDTO> agendasDTO = new ArrayList<AgendaDTO>();
		
		for (Agenda agenda : agendas) 
			agendasDTO.add(assemble(agenda));
		
		return agendasDTO;
	}
	
}
